Management of a multi-focus remote control session

ABSTRACT

A method and system for managing a multi-focus remote control session (RCS) within a computer system. A unique identifier (UserID) of each user and associated input devices are registered to the RCS. The users have shared concurrent control of a computer screen via the input devices. Responsive to selection of windows within the computer screen by the input devices, concurrently operative focus is provided to each selected window and is specific to the UserID associated with the input device that selected the window. Each selected window having focus may be accessed and manipulated by only the input devices associated with the UserID to which the focus provided to each selected window is specific. The selected windows to which focus has been provided are recording in a computer readable medium in association with the UserID specific to the selection of the windows.

This application is a continuation application claiming priority to Ser.No. 11/865,123, filed Oct. 1, 2007.

FIELD OF THE INVENTION

A method and system for managing a multi-focus remote control session.

BACKGROUND OF THE INVENTION

Remote control software has historically been used by people withcomputer administrative functions and also those with deep technicalbackgrounds. However, increasingly, remote control software is beingused by “average” computer users, especially when those users haveroutine access to more than one computer, or travel away from the officeand still need access to the machines that may reside there.Furthermore, aiding the proliferation of these programs, help desks andmajor computer manufacturers are now including remote control softwareas a default installed program to assist with problem determination andsolutions. This type of software can be extremely beneficial for fixingproblems quickly and accurately, accessing remote files and programsotherwise not available, and helping to train geographically disparateusers.

Remote control software may allow two or more users to share a screen.When two or more users are sharing control of a screen, however,significant confusion is often generated due to the conflicting actionsof the users' input devices. Consider two users denoted as a Local Userand a Remote User. When the Remote User moves the mouse of the LocalUser's screen at the same time the Local User is moving the mouse, bothusers will see very odd and unexpected behavior. For example, the RemoteUser may click on a first window and begin dragging the first window toa new location, while the Local User is moving the mouse to another areaof the screen to activate a second program. The movements of both usersare registered with the computer and the first window will jumpsporadically back and forth between the two conflicting mouse movements.At other times, it is common for one user to be typing in a wordprocessor, or programming development environment while the Remote Userneeds to simply move the mouse away from the remote control screen intoanother window that is local to the Remote User, but the Remote User hasno way of transferring the Remote User's own local mouse outside of theremote control window without registering that movement with the LocalUser's computer. The simple act of moving the mouse will almost alwaysresult in a focus change of windows in the remote control session andthus interrupt the Local User's input in the previous window which hadfocus. The effects can sometimes be more than inconvenient when such amovement or change in focus launches an unintended program, deletes afile, or makes some other unexpected change.

A current implementation of remote control software disables all screenaccess except for access by one user. This implementation has thedisadvantage that once a first user grants control to a second user, thefirst user cannot regain control until the second user gives up controlvoluntarily.

There are no known solutions to these problems. Remote control andsession-sharing software packages generally exhibit this problematicbehavior and condition. Unfortunately, both users must endure thesituation, or one user needs to be patient and physically watch thescreen, determine or guess when the other user is not using the mouse ortaking any action, and then to take control of the cursor.

Thus, there is a need for a remote control session method and systemthat alleviates at least one of the aforementioned problems.

SUMMARY OF THE INVENTION

The present invention provides a method for managing a multi-focusremote control session (RCS) within a computer system, said methodcomprising:

-   -   registering to the RCS a UserID of each user of a plurality of        users and at least one input device associated with the UserID        of each user, wherein each user of the plurality of users is        coupled to the RCS via a communication network, wherein the        UserID of each user is a unique identifier of each user within        the RCS, wherein the at least one input device associated with        the UserID of each user is attached to the computer system, and        wherein said registering results in the plurality of users        having shared concurrent control of a computer screen of the        computer system via the at least one input device associated        with the UserID of each user;    -   responsive to selection of a window within the computer screen        by an input device of the at least one input device associated        with the UserID of each user after each user has been registered        to the RCS, providing focus to each selected window, wherein the        focus provided to the selected windows are concurrently        operative, wherein the focus provided to each window is specific        to the UserID associated with the input device that selected the        window, and wherein each selected window having focus is        configured to be accessed and manipulated by only the at least        one input device associated with the UserID to which the focus        provided to each selected window is specific; and    -   recording, in a computer readable medium of the computer system,        the selected windows to which focus has been provided, wherein        each selected window is recorded in association with the UserID        to which the focus provided to each selected window is specific.    -   wherein said registering, said providing focus, and said        recording the selected windows are performed by program code        while executing on a processor of a computer system that is        coupled to the communication network.

The present invention provides a method and system that overcomes atleast one of the disadvantages in existing remote control software.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts a communication network to which is coupled a computersystem and N nodes (N at least 2), in accordance with embodiments of thepresent invention.

FIG. 2 depicts an illustrative shared computer screen 30 withmulti-focus, in accordance with embodiments of the present invention.

FIGS. 3-5 depict multiple users having multi-focus access to multiplewindows concurrently in various embodiments of the present invention.

FIG. 6 describes the use of multiple pointers, in accordance withembodiments of the present invention.

FIG. 7 describes the use of management of pointer relationships, inaccordance with embodiments of the present invention.

FIG. 8 describes the use of management of UserID mappings, in accordancewith embodiments of the present invention.

FIG. 9 is a flow chart describing a method for adding users and theirinput devices to a multi-focus remote control session, in accordancewith embodiments of the present invention.

FIG. 10 is a flow chart describing a method for controlling multi-focuswindows in a remote control session, in accordance with embodiments ofthe present invention.

FIG. 11 is a flow chart describing a method for managing a multi-focusremote control session (RCS) within a computer system, in accordancewith embodiments of the present invention.

FIG. 12 depicts two windows which overlap, in accordance withembodiments of the present invention.

FIG. 13 depicts simultaneous selecting and dragging of different contentin a same window through use of respective input devices, in accordancewith embodiments of the present invention.

FIG. 14 illustrates a computer system used for managing a multi-focusremote control session, in accordance with embodiments of the presentinvention.

DETAILED DESCRIPTION OF THE INVENTION

The present invention provides a method and system for managing a remotecontrol session (RCS or “session”) in which control of the input devices(keyboard, mouse, light pen, touch pad, pointing stick, etc.) of aplurality of authorized users are concurrently employed in active usageby the authorized users.

The present invention involves inclusion of logic in program code such aremote control program or an operating system (OS) such that multipleusers can control multiple input devices (keyboard, mouse, light pen,touch pad, pointing stick, etc) at the same time. In contrast, nocurrent or prior art operating system or remote control program allowsmultiple users to control multiple mouse pointers and associated inputdevices at the same time. By facilitating implementation of softwarethat allows two or more pointers to control and take action on multipleelements within a graphical user interface (GUI) having an associatedcomputer screen, the present invention provides for a more effectiveremote control session than currently exists.

The present invention describes program code that will allow multiplewindows to obtain focus simultaneously. A window is said to have focusif the window in a GUI environment is able to be acted upon and isdenoted by a distinguishing factor from all windows not having focus. Adistinguishing factor may be, inter alia, a highlighted Title Barassociated with a window having focus. The present invention permitsmultiple windows to obtain focus simultaneously, which means thatmultiple pointers may have control of the GUI and can take action uponelements within the GUI concurrently.

A window that has focus may be displayed on top of all other windows andbrought to the foreground. The present invention also permits windowsbeing overlapped by one or more other windows to also have focus.Multiple windows may have concurrent (i.e., simultaneous) focus. Eachwindow having focus may receive input from different input devicesregardless of whether or not each such window having focus is overlappedby another window having focus.

Each user of the system can login under each user's own UserID, whereinthe UserID of each user is a unique identifier of each user within theRCS. Different users may have focus in different windows or in a samewindow in accordance with various embodiments of the present inventionas will be described infra.

FIG. 1 depicts a communication network 25 to which is coupled a computersystem 20 and N nodes denoted as node 1, node 2, . . . , node N, inaccordance with embodiments of the present invention. N is an integer ofat least 2.

The communication network 25 may comprise a local area network (LAN), awide area network (WAN), a public switched telephone network (PSTN), anintranet, the Internet, a cable network operating in the radio-frequencydomain and/or the Internet Protocol (IP) domain, a wired network (e.g.,using copper), telephone network, packet network, an optical network(e.g., using optical fiber), a wireless network, etc.

The computer system 20 (e.g., the computer system 90 of FIG. 5,described infra) comprises program code 21 and a database 22, whereinthe program code 21 is coupled to the database 22 via connection 23. Theprogram code 21 may be a remote control program or an operating systemof the computer system 20. The program code 21 is configured to beexecuted on a processor of the computer system 20 to implement a methodfor managing a remote control session (RCS) in accordance with thepresent invention. Nodes 1, 2, . . . N each represent a computer,computer system, workstation, etc. N users (denoted as user 1, user 2, .. . , user N) are coupled to the N nodes, so as to have access to the Nnodes, on a one-to-one basis; i.e., user I is coupled to node I for I=1,2, . . . , N. The N users are participants in the RCS and include atleast two authorized users. Each user of the N users is identified by aunique identifier called a UserID. Thus, users 1, 2, . . . , N may haveunique identifiers UserID1, UserID2, . . . , UserIDN, respectively.

The present invention provides for multi-focus, multiple pointers,management of pointer relationshops, and management of UserID mappings.

FIG. 2 depicts an illustrative shared computer screen 30 withmulti-focus, in accordance with embodiments of the present invention.During the RCS, the N users (N at least 2) have control of their inputdevices for concurrently manipulating the shared computer screen 30,wherein control of the input devices (keyboard, mouse, light pen, etc.)of the N users are concurrently employed in active usage by the N users.

The shared computer screen 30 has three windows in focus (i.e., open andable to be acted upon), namely windows 31, 32, and 33. Window 31 isdisplaying a document via a word processor, window 32 is displaying aspreadsheet, and window 33 is displaying a file explorer. The N usersare each able to view the motion of all input devices of all N users,and of all content in each window of windows 31-33 throughout the RCS.In one embodiment, a first user of the N users has focus in window 31, asecond user of the N users has focus in window 32, and a third user ofthe N users has focus in window 33.

Generally, each user of the N users has concurrent access to a windowthat each user has selected with an input device. FIGS. 3-5 depict the Nusers having multi-focus access to multiple windows concurrently invarious embodiments of the present invention.

In one embodiment illustrated in FIG. 3, N=3, wherein users 1, 2, and 3are identified by unique identifiers denoted as UserID1, UserID2, andUserID3, respectively. Users 1, 2, and 3 have concurrent access towindows 1, 2, and 3, respectively. In this embodiment, each user hasconcurrent access to a different window and no two users have concurrentaccess to a same window.

In one embodiment illustrated in FIG. 4, N=3, wherein users 1, 2, and 3are identified by unique identifiers denoted as UserID1, UserID2, andUserID3, respectively. Users 1, 2, and 3 have concurrent access towindow 1. In this embodiment, each user has concurrently access to asame window, namely window 1.

In one embodiment illustrated in FIG. 5, N=3, wherein users 1, 2, and 3are identified by unique identifiers denoted as UserID1, UserID2, andUserID3, respectively. Users 1 and 2 have concurrent access to window 1.User 2 has access to window 2 which is concurrent with the access thatusers 1 and 2 have to window 1.

A user is said to have access to a window if the user can manipulate theuser's input devices to navigate and perform operations on the windowand within the window. Performing operations on the window may includeopening the window, closing the window, moving the window within theshared computer screen 30, and resizing the window within the sharedcomputer screen 30. Performing operations within the window may includeoperations on content within the window, such as, inter alia,manipulation of a word processor, spreadsheet, or an other program orapplication within the window.

FIG. 6 describes the use of multiple pointers, in accordance withembodiments of the present invention. The use of multiple pointers ischaracterized by each user having a connection to the same session, eachuser having a pointer device (e.g., a mouse) to control each respectiveuser's pointer, and only the mouse of each user moves in response toeach user moving his/her mouse. Each similar class input device, such asa mouse, is assigned its own visual mouse pointer within the samesession. This enables the remote control program or operating system toreceive, track, and display multiple mouse pointers. Keyboards fall intothe same category. If multiple keyboards were connected, then eachkeyboard would have its own input stream. As shown in the example ofFIG. 6, pointer 1 is specific to user 1, pointer 2 is specific to user2, and pointer 3 is specific to user 3. In FIG. 6, users 1, 2, and 3 areidentified by unique identifiers denoted as UserID1, UserID2, andUserID3, respectively.

The mouse/keyboard/input streams are transferred from the respectiveuser's computer in node 1, node 2, . . . , or node N over thecommunication network 25 to the destination node which then takes theinput and applies the appropriate action to the respective correlatingobject (see FIG. 1). For example, when user 1 moves the mouse of user 1,the data is transmitted over the communication network 25 to thedestination computer. The destination computer correlates the incomingdata (e.g., a stream from user 1 which is on connection 9081, from user2 on connection 9082, etc) which is then used to move user 1's mousepointer around the screen of user 1 which does not affect the mousepointers of the other users.

FIG. 7 describes the use of management of pointer relationships, inaccordance with embodiments of the present invention. A relationshipbetween input devices is maintained by the remote control program oroperating system. The present invention requires an explicitrelationship mapping of various input devices and could be maintained bya table or database or similar device. Each input device is uniquelynamed and assigned a relationship to other input devices. For example,keyboard 1 would have a direct relationship to mouse 1 and keyboard 2would have a direct relationship with mouse 2, etc. This allows multipledevices that are paired together to work together in a coherent fashion.As shown in the example of FIG. 7, user A is assigned keyboard A andmouse A, user B is assigned keyboard B and mouse B, and user C isassigned keyboard C and mouse C. Thus, when user A is working withwindow X having focus and user B is working with focus window Y havingfocus, there is no confusion as to which windows keyboards A and Bshould affect. User A brings window X into focus using mouse A and userB brings window Y into focus using mouse B. Because window X was broughtinto focus using mouse A, the remote control program or operating systemis able to assign keyboard A's input to window X and separately streamkeyboard B's input to window Y. Without this management function ofpointer relationships, user B's keyboard input could be misappropriatedto user A's window. If both users select the same window for focus, thenthe relationship mapping will allow both users to send keyboard inputinto the same window. As shown in FIG. 7, mouse A and keyboard A arespecific to user A, mouse B and keyboard B are specific to user B, andmouse C and keyboard C are specific to user C. In FIG. 7, users A, B,and C are identified by unique identifiers denoted as UserIDA, UserIDB,and UserIDC, respectively.

FIG. 8 describes the use of management of UserID mappings, in accordancewith embodiments of the present invention. The present inventionprovides assignment of UserIDs to input devices. In one embodiment forassigning UserIDs to input devices, a single UserID can be assigned tomultiple input devices, or pairs of devices, as described supra inconjunction with management of pointer relationship, through use of atracking class or thread. Authorization is applied to each input devicebased on a single UserID but the independent tracking of input devicesis maintained in separate threads. In one embodiment for assigningUserIDs to input devices, multiple or independent UserID's can beassigned to each input device multiple input devices. This allowsmultiple users to maintain a security context around what the multipleusers are authorized to do but to still maintain continuity within aRCS.

In FIG. 8, users A and B are identified by unique identifiers denoted asUserIDA and UserIDB, respectively.

In step 31, user A invites user B to join a RCS to collaborate on thedocument. User A's keyboard A and mouse A are assigned a relationshipand mapped to the User ID of user A. User B's keyboard B and mouse B areassigned a relationship and mapped to the UserID of user B. At the sametime some assignment is made so that input from User B coming across thecommunication network 25 (see FIG. 1) is readily identifiable as datafrom User B and not another user. This can be accomplished throughmapping the connection User B has connected through over thecommunication network 25 to data belonging to User B's input devices.User B launches file X in a word processor. File X comprises a document.User B joins the RCS so that users A and B may collaborate on thedocument (step 32). User A and/or user B make several changes to thedocument in file X (step 33).

In the following two scenarios, all input to an application (i.e.spreadsheet, word processor, etc) from each user is appropriatelyidentified with the respective user. This way when “track changes”features of the application are activated, the appropriate user makingchanges is associated with that user's changes.

In a first scenario, user A has “administrator” rights for file saving,and user B has “guest” rights for file saving. File X can be viewed byall users but written to or saved by administrators only. User A is anadministrator and user B is not an administrator. In FIG. 8, user Btries to save the file in step 34, and step 35 determines that user B isnot authorized by remote control program or operating system to performa file save operation. Thus, a warning dialog appears stating that userB is not authorized to perform a file save operation and user A isprompted to save file X (step 36). Thus, user A successfully saves fileX (step 37), because the actions of mouse A were validated or authorizedby the remote control program or operating system.

In a second scenario, user A has “administrator” rights for file saving,and UserIDB is mapped to UserIDA with respect to user A's“administrator” rights. Thus, when the operating system detects actionby users B's pointers, the remote control program or operating systemwill identify such action by users B's pointers with UserIDB. The remotecontrol program or operating system will then assess whether such actionby users B's pointers are authorized in view of UserIDB being mapped toUserIDA with respect to user A's “administrator” rights. In FIG. 8, userB tries to save the file in step 34 and step 35 determines that user Bis authorized by operating system to perform a file save operation.Thus, user B successfully saves file X (step 38), because the remotecontrol program or operating system has associated administrator rightswith the actions of both mouse A and mouse B, due to the mapping ofUserIDB to UserIDA with respect to user A's “administrator” rights incombination with the assignment of mouse B to UserIDB.

The use of multiple input devices with the present invention maycomprise both local-local or local-remote combinations. In a first RCSembodiment, there is a local input pair (keyboard/mouse) and one or moreremote pairs (keyboard/mouse). In a second RCS embodiment, there ismultiple pairs of input devices on the same local computer (i.e., acomputer that has two or more mice and two or more keyboards). In thesecond RCS embodiment, two users could sit side by side each with theirown input devices and collaborate or share the computing session/GUI.

FIG. 9 is a flow chart describing a method for adding users and theirinput devices to a multi-focus remote control session, in accordancewith embodiments of the present invention.

In step 100, a remote control session (RCS) begins. The program code(e.g., remote control program or operating system) processes and tracksusers authenticating themselves to the program code and gaining controlover the various input devices (mouse, keyboard, tablet, light pen,etc).

After a RCS is initiated in step 100, the program code monitors foradditional users in step 101 and determines in step 102 whether there isanother user to authenticate. If step 102 determines that there is notanother user to authenticate, then the method loops back to step 101 tocontinue to monitor for additional users. If step 102 determines thatthere is another user to authenticate, then step 103 is next executed.

Step 103 determines whether there are available input devices attachedto the system (i.e., attached input devices not already assigned to anexisting user in the RCS). If step 103 determines that there areavailable input devices attached to the system, then step 200 is nextexecuted; otherwise, step 300 is next executed.

Step 200 determines whether any of the available input devices arecurrently assigned to the additional user determined in step 102 toauthenticate. For example, if there are two mice and two keyboardsattached to the computer, then the system will check to see if the oneor more sets of the attached two mice and two keyboard input devices arecurrently assigned to the additional user.

If step 200 determines that any of the any of the available inputdevices are currently assigned to the additional user, then step 202 isnext executed; otherwise step 201 then makes input device assignments ofone or more of the available input devices with respect to theadditional user, followed by execution of step 202.

Step 202 records and tracks the assigned input devices of the additionaluser independent of the input devices of other existing users of theRCS. The assigned input devices, pointer relationships, and UserIDmappings of the users in the RCS may be recorded in one or more tablesof the database 22 (see FIG. 1), such as Tables 1 and 2 infra.

TABLE 1 UserID Input Device 1 Input Device 2 Greg Boss Thinkpad Ultranavon Standard 101/102 USB002 Keyboard on USB001 Kulvir Bogal MicrosoftTrackball on Logitech Keyboard USB003 on USB004 Alex Polozoff LogitechMouse over Logitech Keyboard connection 9083 over connection 9083

TABLE 2 UserID Mapped To Greg Boss Kulvir Bogal Greg Boss Alex Polozoff

Greg Boss has “administrator” rights for file saving, and Kulvir Bogalis mapped to Greg Boss with respect to the “administrator” rights ofGreg Boss.

After step 202 is executed, each active user 400 can obtain access toone window having focus independently of other users within the RCS.

Step 400 (described infra in detail in conjunction with FIG. 10)performs control of multi-focus windows in the RCS such that each activeuser can obtain access to one window having focus independent of windowshaving focus or to a window having focus that at least one other hasaccess to, followed by looping back to step 101 to monitor for moreusers entering the RCS.

Step 300 monitors for a current user of the RCS having control over acurrently attached input device to initiate a transfer of said controlover to the additional user that is waiting for said transfer of controlof the attached input device from the current user. Thus, step 301determines whether said transfer of control of a currently attachedinput device from a current user has been initiated.

If step 301 determines that said transfer of control of a currentlyattached input device from a current user has not been initiated, thenthe method loops back to step 300 to continue to monitor for saidinitiation of transfer of control of a currently attached input devicefrom a current user; otherwise step 302 is next executed.

Step 302 re-assigns the currently attached input device from the currentuser to the additional user, followed by transferring program control tostep 202 to track the re-assigned input device of the additional userindependent of the input devices of other existing users of the RCS,followed by control of multi-focus windows in step 400 and subsequentlooping back to step 101 to monitor for more users entering the RCS.

FIG. 10 is a flow chart describing implementation of step 400 of FIG. 9for controlling multi-focus windows in a remote control session, inaccordance with embodiments of the present invention.

Step 401 monitors selection or release of a window by a user of any ofthe multiple users in the RCS and determines in step 401 whether one ofthe multiple users has selected or released a window. If the user hasselected a window, as indicated in step 402, then step 403 is executedafter step 402. If the user has released a window, as indicated in step408, then step 409 is executed after step 408.

Step 403 determines whether the selected window already has focus fromanother user.

If step 403 determines that the selected window does not have focus fromanother user, then step 404 provides focus to the window-selecting userand step 406 subsequently assigns input devices of the window-selectinguser to the selected window so that the window-selecting user's inputdevice streams will affect the selected window which has focus, followedby looping back to step 401 to monitor for selection or release of awindow by a user in the RCS.

If step 403 determines that the selected window already has focus fromanother user, then step 405 determines if shared focus in a window isallowed in the RCS. Shared focus in a window means that at least twousers have concurrent (i.e., simultaneous) access to the window.Allowance or non-allowance of shared focus in a window may be set by anadministrator or may alternatively be a default setting at the time ofinstallation of the remote control program or operating system

If step 405 determines that shared focus in a window is allowed, thenprogram control is transferred to step 406 which has been describedsupra.

If step 405 determines that shared focus in a window is not allowed,then step 407 displays a prompt to the window-selecting user, indicatingthat the selected window cannot be given focus because the selectedwindow already has focus from another user, followed by looping back tostep 401 to monitor for selection or release of a window by a user inthe RCS.

Step 409 deletes the user's input devices that had been previouslyassigned to the released window, followed by looping back to step 401 tomonitor for selection or release of a window by a user in the RCS.

FIG. 11 is a flow chart describing a method for managing a multi-focusremote control session (RCS) within a computer system, in accordancewith embodiments of the present invention. The flow chart of FIG. 11comprises steps 41-48, which are performed by program code 21 whileexecuting on a processor of the computer system 20 that is coupled tothe communication network 25 (see FIG. 1).

Step 41 registers to the RCS a UserID of each user of a plurality ofusers and at least one input device associated with the UserID of eachuser. Each user of the plurality of users is coupled to the RCS viacommunication network 25. The UserID of each user is a unique identifierof each user within the RCS. The at least one input device associatedwith the UserID of each user is attached to the computer system 20. Theregistering of step 41 results in the plurality of users having sharedconcurrent control of a computer screen of the computer system 20 viathe at least one input device associated with the UserID of each user.

Responsive to selection of a window within the computer screen by aninput device of the at least one input device associated with the UserIDof each user after each user has been registered to the RCS in step 41,step 42 provides focus to each selected window. The focus provided tothe selected windows enables concurrent operations to be performed onand within the selected windows. The focus provided to each window isspecific to the UserID associated with the input device that selectedthe window. Each selected window having focus is configured to beaccessed and manipulated by only the at least one input deviceassociated with the UserID to which the focus provided to each selectedwindow is specific.

Step 43 records, in a computer readable medium of the computer system 20(e.g., in database 22), the selected windows to which focus has beenprovided. Each selected window is recorded in association with theUserID to which the focus provided to each selected window is specific,as illustrated infra in Tables 3-5 which reflect FIGS. 3-5,respectively.

TABLE 3 Window UserID 1 Greg Boss 2 Kulvir Bogal 3 Alex Polozoff

TABLE 4 Window UserID 1 Greg Boss; Kulvir Bogal; Alex Polozoff

TABLE 5 Window UserID 1 Greg Boss; Kulvir Bogal 2 Alex Polozoff

Step 44 tracks and records (in a storage device or medium of thecomputer system 20 such as in the database 22) input streams from the atleast one input device associated with the UserID of each user, asillustrated infra in Table 6.

TABLE 6 Input Device Input Stream 1 Input stream 1 (i.e., sequentialinputs from input device 1) 2 Input stream 2 (i.e., sequential inputsfrom input device 2) 3 Input stream 3 (i.e., sequential inputs frominput device 3) 4 Input stream 4 (i.e., sequential inputs from inputdevice 4)

In one embodiment, the plurality of users may include a first user and asecond user, wherein the focus provided to a first window of theselected windows is specific to the UserID of the first user, andwherein the focus provided to a second window of the selected windows isspecific to the UserID of the second user, such as in Table 3 supra. Forexample, the first and second input device may be a first and secondmouse, respectively.

Accordingly, step 44 tracks and records a first input stream generatedby a first input device of the at least one input device associated withthe UserID of the first user (see Table 6) with respect to manipulationof content within the first window by the first input device during afirst interval of time. Similarly, step 44 tracks and records a secondinput stream generated by a second input device of the at least oneinput device associated with the UserID of the second user (see Table 6)with respect to manipulation of content within the second window by thesecond input device during a second interval of time. In one embodiment,the first and second input device may be a first and second mouse,respectively.

The first input stream and the second input stream may comprisesimultaneous manipulation of content within the first window and thesecond window by the first input device and the second input deviceduring the first interval of time and the second interval of time,respectively.

In one embodiment, the first window and the second window are differentwindows.

In one embodiment, the first window does not overlap the second window,and the second window does not overlap the first window.

In one embodiment illustrated in FIG. 12, the first window 51 and thesecond window 61 are in a first configuration in which a first portion52 of the first window 51 overlaps a second portion 62 of the secondwindow 61.

The tracking and recording of input streams in step 44 may apply to anyof the embodiments of steps 45-48, discussed infra.

In step 45, the simultaneous manipulation comprises simultaneousmanipulation of content within the first portion of the first window andthe second portion of the second window by the first input device andthe second input device during the first interval of time and the secondinterval of time, respectively.

In step 45 with respect to FIG. 12, the simultaneous manipulation ofcontent within the first window and the second window in step 44 maycomprise simultaneous manipulation of content within the first portion52 of the first window 51 and the second portion 62 of the second window61 by the first input device and the second input device during thefirst interval of time and the second interval of time, respectively.

In one embodiment, step 46 modifies the first and second windows toremove the window overlap depicted in FIG. 12. A user input device isselected from the group consisting of the first input device and thesecond input device. The selected input device is authorized to moveand/or resize at least one window to change a configuration of the firstwindow and the second window from the first configuration of FIG. 12 toa second configuration in which the first and second windows do notoverlap. The at least one window that is moved and/or resized isselected from the group consisting of the first window, the secondwindow, and both the first window and the second window. As a result ofstep 46 for an illustrative case of three overlapping windows, thesecond configuration of non-overlapping windows is illustrated in FIG. 2in which the windows 31, 32, and 33 do not overlap.

In one embodiment, the user input device used to remove the windowoverlap is chosen to be: the first input device if the first user wasregistered to the RCS before the second user was registered to the RCS;or the second input device if the second user was registered to the RCSbefore the first user was registered to the RCS. Registering the firstand second user to the RCS is performed in step 41, discussed supra.

In one embodiment in which the first user has a first user priority andthe second user has a second user priority that differs from the firstuser priority, the user input device used to remove the window overlapis chosen to be: the first input device if the first user priority ishigher than the second user priority; or the second input device if thesecond user priority is higher than the first user priority.

In one embodiment in which the first window comprises a firstapplication having a first application priority and the second windowcomprises a second application having a second application priority thatdiffers from the first application priority, the user input device usedto remove the window overlap is chosen to be: the first input device ifthe first application priority is higher than the second applicationpriority; or the second input device if the second application priorityis higher than the first application priority.

In one embodiment, the first window and the second window are a samewindow.

In step 47 with respect to the first and second window being the samewindow, the first user has administrator rights to save content withinthe first window via an association of the administrator rights with theUserID of the first user. The UserID of the second user is mapped to theUserID of the first user. The second input stream comprises an action bythe second input device to save a file derived from content within thesame window. Tracking of the second input stream comprises detecting theaction in the second input stream to save the file. It is ascertainedthat the action to close the file by the second input device isauthorized, based on the mapping of the UserID of the second user to theUserID of the first user in conjunction with the administrator rightsassociated with the UserID of the first user. After said ascertainingthat the action to close the file is authorized, the file is saved.

In step 48 with respect to the first and second window being the samewindow as illustrated in FIG. 13 in accordance with embodiments of thepresent invention, the simultaneous manipulation of content within thesame window 70 in step 48 may comprise a selection of first content 71in the same window 70 by the first input device that is simultaneouswith a selection of second content 72 in the same window 70 by thesecond input device. In one embodiment, the simultaneous manipulation ofcontent within the same window 70 may further comprises dragging theselected first content 71 in the direction 73 that is simultaneous withdragging the selected second content 72 in the direction 74.

FIG. 14 illustrates a computer system 90 used for managing a multi-focusremote control session (RCS), in accordance with embodiments of thepresent invention. The computer system 90, which may be used for thecomputer system 20 of FIG. 1, comprises a processor 91, an input device92 coupled to the processor 91, an output device 93 coupled to theprocessor 91, and memory devices 94 and 95 each coupled to the processor91. The input device 92 may be, inter alia, a keyboard, a mouse, etc.The output device 93 may be, inter alia, a printer, a plotter, acomputer screen, a magnetic tape, a removable hard disk, a floppy disk,etc. The memory devices 94 and 95 may be, inter alia, a hard disk, afloppy disk, a magnetic tape, an optical storage such as a compact disc(CD) or a digital video disc (DVD), a dynamic random access memory(DRAM), a read-only memory (ROM), etc. The memory device 95 includes acomputer code 97 which is a computer program that comprisescomputer-executable instructions. The computer code 97 includes analgorithm for managing a multi-focus remote control session (RCS). Theprocessor 91 executes the computer code 97. The memory device 94includes input data 96. The input data 96 includes input required by thecomputer code 97. The output device 93 displays output from the computercode 97. Either or both memory devices 94 and 95 (or one or moreadditional memory devices not shown in FIG. 1) may be used as a computerusable medium (or a computer readable medium or a program storagedevice) having a computer readable program embodied therein and/orhaving other data stored therein, wherein the computer readable programcomprises the computer code 97. Generally, a computer program product(or, alternatively, an article of manufacture) of the computer system 90may comprise said computer usable medium (or said program storagedevice).

The present invention discloses a process for deploying or integratingcomputing infrastructure, comprising integrating computer-readable codeinto the computer system 90, wherein the code in combination with thecomputer system 90 is capable of performing a method for managing amulti-focus remote control session (RCS). Any of the components of thepresent invention could be deployed, managed, serviced, etc. by aservice provider.

In another embodiment, the invention provides a business method thatperforms the process steps of the invention on a subscription,advertising, and/or fee basis. That is, a service provider can create,maintain, support, etc., a computer infrastructure that performs theprocess steps of the invention for one or more customers. In return, theservice provider can receive payment from the customer(s) under asubscription and/or fee agreement and/or the service provider canreceive payment from the sale of advertising content to one or morethird parties.

While FIG. 14 shows the computer system 90 as a particular configurationof hardware and software, any configuration of hardware and software, aswould be known to a person of ordinary skill in the art, may be utilizedfor the purposes stated supra in conjunction with the particularcomputer system 90 of FIG. 14. For example, the memory devices 94 and 95may be portions of a single memory device rather than separate memorydevices.

While embodiments of the present invention have been described hereinfor purposes of illustration, many modifications and changes will becomeapparent to those skilled in the art. Accordingly, the appended claimsare intended to encompass all such modifications and changes as fallwithin the true spirit and scope of this invention.

1. A method for managing a multi-focus remote control session (RCS)within a computer system, said method comprising: responsive toselection of a window within a computer screen of the computer system byan input device of at least one input device associated with a UserID ofeach user of a plurality of users after each user has been registered tothe RCS, a processor of the computer system providing focus to eachselected window, wherein the focus provided to the selected windows areconcurrently operative, wherein the focus provided to each window isspecific to the UserID associated with the input device that selectedthe window, and wherein each selected window having focus is configuredto be accessed and manipulated by only the at least one input deviceassociated with the UserID to which the focus provided to each selectedwindow is specific, and wherein the UserID of each user is a uniqueidentifier of each user within the RCS; and said processor recording, ina computer readable storage medium of the computer system, the selectedwindows to which focus has been provided, wherein each selected windowis recorded in association with the UserID to which the focus providedto each selected window is specific.
 2. The method of claim 1, whereinthe plurality of users include a first user and a second user, whereinthe focus provided to a first window of the selected windows is specificto the UserID of the first user, wherein the focus provided to a secondwindow of the selected windows is specific to the UserID of the seconduser, and wherein the method further comprises: said processor trackingand recording a first input stream generated by a first input device ofthe at least one input device associated with the UserID of the firstuser with respect to manipulation of content within the first window bythe first input device during a first interval of time; and saidprocessor tracking and recording a second input stream generated by asecond input device of the at least one input device associated with theUserID of the second user with respect to manipulation of content withinthe second window by the second input device during a second interval oftime, wherein the first input stream and the second input streamcomprise simultaneous manipulation of content within the first windowand the second window by the first input device and the second inputdevice during the first interval of time and the second interval oftime, respectively.
 3. The method of claim 2, wherein the first windowand the second window are different windows.
 4. The method of claim 3,wherein the first window does not overlap the second window, and whereinthe second window does not overlap the first window.
 5. The method ofclaim 3, wherein the first window and the second window are in a firstconfiguration in which a first portion of the first window overlaps asecond portion of the second window.
 6. The method of claim 5, whereinthe method further comprises: said processor authorizing a user inputdevice to move and/or resize at least one window to change aconfiguration of the first window and the second window from the firstconfiguration to a second configuration in which the first and secondwindows do not overlap, wherein the user input device is selected fromthe group consisting of the first input device and the second inputdevice, and wherein the at least one window is selected from the groupconsisting of the first window, the second window, and both the firstwindow and the second window.
 7. The method of claim 6, wherein the userinput device is the first input device if the first user was registeredto the RCS before the second user was registered to the RCS, wherein theuser input device is the second input device if the second user wasregistered to the RCS before the first user was registered to the RCS.8. The method of claim 6, wherein the first user has a first userpriority, wherein the second user has a second user priority thatdiffers from the first user priority, wherein the user input device isthe first input device if the first user priority is higher than thesecond user priority, wherein the user input device is the second inputdevice if the second user priority is higher than the first userpriority.
 9. The method of claim 6, wherein the first window comprises afirst application having a first application priority, wherein thesecond window comprises a second application having a second applicationpriority that differs from the first application priority, wherein theuser input device is the first input device if the first applicationpriority is higher than the second application priority, wherein theuser input device is the second input device if the second applicationpriority is higher than the first application priority.
 10. The methodof claim 5, wherein the simultaneous manipulation comprises simultaneousmanipulation of content within the first portion of the first window andthe second portion of the second window by the first input device andthe second input device during the first interval of time and the secondinterval of time, respectively.
 11. The method of claim 10, wherein thefirst input device is a first mouse, and wherein the second input deviceis a second mouse.
 12. The method of claim 2, wherein the first windowand the second window are a same window.
 13. The method of claim 12,wherein the first input device is a first mouse, and wherein the secondinput device is a second mouse.
 14. The method of claim 12, wherein thefirst user has administrator rights to save content within the firstwindow via an association of the administrator rights with the UserID ofthe first user, wherein the UserID of the second user is mapped to theUserID of the first user, and wherein the second input stream comprisesan action by the second input device to save a file derived from contentwithin the same window, and wherein said tracking the second inputstream comprises detecting the action in the second input stream to savethe file, and wherein the method further comprises: said processorascertaining that the action to close the file is authorized, saidascertaining based the mapping of the UserID of the second user to theUserID of the first user in conjunction with the administrator rightsassociated with the UserID of the first user; and after saidascertaining, said processor saving the file.
 15. The method of claim12, wherein the simultaneous manipulation comprises a selection of firstcontent in the same window by the first input device that issimultaneous with a selection of second content in the same window bythe second input device.
 16. The method of claim 15, wherein thesimultaneous manipulation further comprises a dragging in the samewindow of the selected first content that is simultaneous with adragging in the same window of the selected second content.
 17. Themethod of claim 1, wherein the method further comprises: prior to saidproviding focus to each selected window, said processor registering tothe RCS the UserID of each user and the at least one input deviceassociated with the UserID of each user, wherein each user is coupled tothe RCS via a communication network to which the computer system iscoupled, and wherein said registering results in the plurality of usershaving shared concurrent control of the computer screen via the at leastone input device associated with the UserID of each user.
 18. A computerprogram product, comprising a computer readable tangible storage devicecomputer readable program code stored therein, said program codeconfigured to be executed by a processor of a computer system toimplement a method for managing a multi-focus remote control session(RCS) within the computer system, said method comprising: responsive toselection of a window within a computer screen of the computer system byan input device of at least one input device associated with a UserID ofeach user of a plurality of users after each user has been registered tothe RCS, said processor providing focus to each selected window, whereinthe focus provided to the selected windows are concurrently operative,wherein the focus provided to each window is specific to the UserIDassociated with the input device that selected the window, and whereineach selected window having focus is configured to be accessed andmanipulated by only the at least one input device associated with theUserID to which the focus provided to each selected window is specific,and wherein the UserID of each user is a unique identifier of each userwithin the RCS; and said processor recording, in a computer readablestorage medium of the computer system, the selected windows to whichfocus has been provided, wherein each selected window is recorded inassociation with the UserID to which the focus provided to each selectedwindow is specific.
 19. A computer system, comprising a processor, amemory coupled to the processor, and a computer readable storage devicecoupled to the processor, said storage device containing program codeconfigured to be executed by the processor via the memory to implement amethod for managing a multi-focus remote control session (RCS) withinthe computer system, said method comprising: responsive to selection ofa window within a computer screen of the computer system by an inputdevice of at least one input device associated with a UserID of eachuser of a plurality of users after each user has been registered to theRCS, said processor providing focus to each selected window, wherein thefocus provided to the selected windows are concurrently operative,wherein the focus provided to each window is specific to the UserIDassociated with the input device that selected the window, and whereineach selected window having focus is configured to be accessed andmanipulated by only the at least one input device associated with theUserID to which the focus provided to each selected window is specific,and wherein the UserID of each user is a unique identifier of each userwithin the RCS; and said processor recording, in a computer readablestorage medium of the computer system, the selected windows to whichfocus has been provided, wherein each selected window is recorded inassociation with the UserID to which the focus provided to each selectedwindow is specific.
 20. A process for integrating computinginfrastructure, said process comprising integrating computer-readablecode into a computer system, wherein the computer-readable code incombination with the computer system is configured to perform a methodfor managing a multi-focus remote control session (RCS) within thecomputer system, said method comprising: responsive to selection of awindow within a computer screen of the computer system by an inputdevice of at least one input device associated with a UserID of eachuser of a plurality of users after each user has been registered to theRCS, a processor of the computer system providing focus to each selectedwindow, wherein the focus provided to the selected windows areconcurrently operative, wherein the focus provided to each window isspecific to the UserID associated with the input device that selectedthe window, and wherein each selected window having focus is configuredto be accessed and manipulated by only the at least one input deviceassociated with the UserID to which the focus provided to each selectedwindow is specific, and wherein the UserID of each user is a uniqueidentifier of each user within the RCS; and said processor recording, ina computer readable storage medium of the computer system, the selectedwindows to which focus has been provided, wherein each selected windowis recorded in association with the UserID to which the focus providedto each selected window is specific.